מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

Σχετικά έγγραφα
עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

מבני נתונים עצים שיעור 7

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

מבני נתונים ויעילות אלגוריתמים

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

Nir Adar גירסה 1.00 עמוד 1

מבני נתונים ויעילות אלגוריתמים

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

מבני נתונים (234218) 1

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:

עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,

השאלות ידי מצביעים לילדים.

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

ל הזכויות שמורות לדפנה וסטרייך

מבני נתונים ואלגוריתמים תרגול #11

סדרות - תרגילים הכנה לבגרות 5 יח"ל

מתמטיקה בדידה תרגול מס' 13

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

Nir Adar

סיכום- בעיות מינימוםמקסימום - שאלון 806

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

אסימפטוטיים תוכנית הקורס עצי AVL עצי 2-3 עצי דרגות סיבוכיות משוערכת מיון מיון שימושים: גרפים איסוף אשפה

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

Trie מאפשר חיפוש, הכנסה, הוצאה, ומציאת מינימום (לקסיקוגרפי) של מחרוזות.

חורף תש''ע פתרון בחינה סופית מועד א'

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

תרגיל 13 משפטי רול ולגראנז הערות

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n,

. {e M: x e} מתקיים = 1 x X Y

םינותנ ינבמ 3 ליגרתמ תולאשל המוד תולאש טסל תונורתפ תולאשה

Logic and Set Theory for Comp. Sci.

תורת הגרפים - סימונים

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

תרגול 8: מטלאב לולאות

אלגוריתמים / תרגיל #1

מבני נתונים מבחן מועד א' סמסטר אביב תשס"ו

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

אוניברסיטת בר אילן מבני נתונים תרגולים מרצה: פרופ' שמואל טומי קליין סמסטר ב', תש"ע

gcd 24,15 = 3 3 =

co ארזים 3 במרץ 2016

Hash Tables (המשך) ערבול (Hashing)

שאלה 1 V AB פתרון AB 30 R3 20 R

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

מתמטיקה בדידה תרגול מס' 5

תרגול מס' 6 פתרון מערכת משוואות ליניארית

םינותנ ינבמ (הנכות ידימלתל)

אלגוריתמים בתורת הגרפים חלק ראשון

תרגול פעולות מומצאות 3

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

מבני נתונים מדעי המחשב שאלון: מועד ב' תשע"ו מדעי המחשב פתרון בחינת הבגרות. Java שאלה 1. blog.csit.org.

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

מבני נתונים ואלגוריתמים תרגול #8-9

השאלות..h(k) = k mod m

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

מבני נתונים. אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל שלבי הרקורסיה, אך עתה אין צורך להיכנס לתיאור הריצה של.

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

תורישק :תורישקה תייעבב בוש ןייענ?t- t ל s- s מ לולסמ שי םאה 2

סיכום הקורס מבוא למבני נתונים ואלגוריתמים

( n) ( ) ( ) שאלה 1: שאלה 2: שאלה 3: (n 5) = Θ. ב. אם f 1, f 2, g 1, g 2. .g 1 *g 2 = Ω(f 1 *f 2 ) , g. ג. ) n.n! = θ(n*2. n) f ( אז ד. אם ה. אם ו.

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

מבנה נתונים סיכומי הרצאות

logn) = nlog. log(2n

הגדרה: מצבים k -בני-הפרדה

Practical Session #9 - Heap, Lempel-Ziv

2016 Shaul Markovitch Shaul Markovitch Shaul Markovitch

3-9 - a < x < a, a < x < a

áùçîä éòãîì äîâîä ÌÈÏÈ ÂÁ

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

מדעי המחשב ב' פתרון בחינת הבגרות. One n 4.0. One n T 4 3 T 8 4 T 16 5 T 32 6 F

מודלים חישוביים פתרון תרגיל 5

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

מתמטיקה בדידה תרגול מס' 12

במשחקים בצורה אסטרטגית: השחקנים בוחרים אסטרטגיות במקביל ובצורה בלתי תלויה. מייד לאחר מכן מסתיים המשחק. נרצה לדון במשחקים מסוג אחר: השחקנים משחקים לפי

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

x a x n D f (iii) x n a ,Cauchy

מתמטיקה בדידה תרגול מס' 2

Transcript:

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים חזרה מבנה נתונים אמצעי לאחסון נתונים במחשב. יש הרבה סוגים שונים, וצריך להשתמש במבנה שהכי מתאים לבעיה שלנו מבחינת שימוש בנתונים הוספה, מחיקה וחיפוש. צריך לשים שיש מבני נתונים מופשטים type) (ADT abstract data שמגדירים ממשק מסוים ללא מימוש. למשל, מחסנית הוא מבנה נתונים מופשט, שניתן לממש באמצעות תור או רשימה מקושרת (שהם גם מבני נתונים). מערך הכנסה/הוצאה,O(n) גישה (1)O, מוגבל במקום. רשימה מקושרת הכנסה/הוצאה (1)O, גישה,O(n) לא מוגבל במקום. רשימה דומקושרת יש גם מצביע לאיבר הקודם. מחסנית Out).(Last In First מימוש באמצעות מערך: כל הפעולות (1)O. אם נגמר המקום, צריך להכפיל את גודל המערך ולהעתיק הכל,לוקח.O(n) מימוש באמצעות רשימה מקושרת: כל הפעולות (1)O. אם רוצים לרוקן את המחסנית, צריך לשחרר את כל ההקצאות הדינמיות, לוקח.O(n) תור Out).(First In First מימוש באמצעות מערך: מכיוון שכל הזמן מכניסים איברים, התור "זז" וזה מבזבז מקום. לכן נתייחס למערך כמעגל. מימוש באמצעות רשימה מקושרת: תור עדיפויות/ערימה הרעיון כמו תור רגיל, אך מחזיקים בנוסף ערך שמתאר את העדיפות של הנתון. לדוגמא Scheduler של תוכניות במחשב. מימושים נאיביים: מכניסים את האיברים לפי הסדר (כמו תור רגיל), וכאשר מוצאים איבר מחפשים את האיבר עם הקדימות הגבוהה ביותר. הכנסה (1)O, הוצאה.O(n) מכניסים את האיברים לפי הקדימויות. הכנסה,O(n) הוצאה (1)O. (1 (2 מימוש נוסף: אם יש מספר קטן של קדימויות, ניתן ליצור תור עבור כל קדימות, ונוציא איבר מהתור בעל הקדימות הגבוהה ביותר. מימוש יעיל יותר ערימה.Heap ערימה מערך שניתן לראות כעף בינארי כמעט מלא (=עץ בינארי שבו כל הרמות מלאות פרט אולי לרמה האחרונה, שמלאה מצד שמאל עד לנקודה מסוימת). דוגמא לערימת מקסימום ] 1 [ 17 14 10 8 7 9 3 2 4 = A

"תכונת הערימה" חייבת להתקיים : A[i] A[Parent(i)] (ערימת מקימום). בהקשר של תור קדימויות הערכים הם הקדימויות. מציאת ערכים: בהינתן אינדקס i של צומת:.2i + 1 בן ימני,2i בן שמאלי, אבא.log n גובה העץ מימוש: יותר נוח למלא את המערך מאינדקס 1. תריך מצביע לאיבר האחרון במערך.end פעולות בערימה: Heapsize מספר האיברים בערימה. Create (n): A array of size n end = 0; Push (x): A[end++] = x; i = end; while i>1 and A[i]>A[Parent(i)] k = A[Parent(i)]; switch(a[i],a[k]); i=k; x = Pop(): if end==0 error(empty) else x=a[i]; A[1]=A[end]; end; Heapify(1); return x;

Heapify(i): l = Left(i); r = Right(i); if l heapsize and A[l] >A[i] max = l; if r heapsize and A[r] >A[max] max = r; if max i switch( A[i],A[max]) Heapify(max); תרגיל: נתונות k רשימות ממוינות באורך n. מזגו את הרשימות לרשימה אחת ממויינת ב( k.θ(nk log פיתרון: כלומר רוצים למצוא את בכל צעד רוצים למצוא את האיבר הקטן ביותר ולהכניס למערך הפלט. נחזיק k אינדקסים (אחד לכל רשימה). כל פעם נמצא כל פעם נמצא את r כך ש ] L [i ] = min {, } L [i הרשימה שהאיבר הראשון בה הכי קטן. L,, L הן הרשימות, L היא הרשימה הממוזגת ו i הוא האיבר הנוכחי שמוסיפים. H heap of pairs (list index + number) L array of size nk i = i = i = = i = 0 for j=1 to k: Ο H.Push(L i, j) While H.IsEmpty==false (a,j) = H.Pop(); L [i ] = a; Ο(nk log k) i + +; i + +; if i < n H.Push(L i, j) האלגוריתם: אם היינו מוצאים את i ע"י מעבר על כל הרשימות, הסיבוכיות הייתה ).Ο(nk עצים נושאים: עצי חיפוש עצים מאוזני גובה: עצי 23 ועצי AVL הגדרות:

עץ בינארי: עץ שבו לכל צומת יש לכל היותר 2 בנים. עץ בינארי מלא: עץ בינארי בו לכל צומת פנימי יש בדיוק 2 בנים. עץ בינארי שלם: עץ בינארי בו כל העלים באותו עומק. עץ בינארי כמעט שלם: עץ שלם שהוצאו ממנו עלים מצד ימין. תכונות של עץ בינארי שלם: ) n צמתים, L עלים וגובה h) מספר צמתים בעומק n = 2 :i מספר עלים: L = n = 2 n = מספר צמתים בעץ: 1 n = 2 = 2 גובה של העץ n) h = log (n + 1) 1 = O(log עצי חיפוש עץ בינארי שבו מתקיים הכלל הבא: X צומת בעץ חיפוש בינארי. אם y הוא צומת בתתהעץ השמאלי של x מתקיים ש y x. אם y הוא צומת בתתהעץ הימני של x מתקיים ש x y. > דוגמא מעברים בעץ: :Preorder בקר בשורש, סייר בתתהעץ השמאלי, סייר בתתהעץ הימני. :Postorder סייר בתתהעץ השמאלי, סייר בתתהעץ הימני, בקר בשורש. :Inorder סייר בתתהעץ השמאלי, בקר בשורש, סייר בתתהעץ הימני. תרגיל: מספרו את הצמתים לפי הסדר שלהם בעץ החיפוש:

פיתרון: מעבר inorder על העץ: D, B, H, E, A, F, C, K, I G, J פעולות בעץ חיפוש: חיפוש: בצורה רקורסיבית אם הערך קטן ממה שמחפשים, לך שמלאה. אחרת ימינה. הכנסה: בצורה איטרטיבית סורקים עד למטה (עד שמגיעים ל null ) ומוסיפים. המחיקה: 3 מצבים אין לצומת בנים מוחקים, לצומת יש בן יחיד יוצרים קשת בין הבן לאב ומוחקים. יש לצומת 2 בנים מוחקים את הערך הקודם לו (הכי ימני בתת העץ השמאלי) ומחליפים ערכים ביניהם. (1 (2 (3 דוגמא (בעץ הראשון): הוסף 0.5, 1.5 מחק 8 מחק 7 מחק 1 סיבוכיות הפעולות O(logn) (כאשר העץ מאוזן). אם לא שומרים על איזון נקבל רשימה לינארית והחיפוש ייקח.O(n) פיתרון עץ מאוזן גובה רוצים שההפרש בין עומק 2 תתי עצים יהיה לכל היותר 1. עצי 23 כל העלים באותה רמה

כל הערכים בעלים בצמתים הפנימיים יש אינדקסים לכל צומת פנימי יש 2 או 3 בנים, ומספר תואם של אינדקסים. מספר העלים מקיים h) 2 L 3 גובה העץ) גובה העץ:.h = Θ(logL) log L h log L בעץ 23 מתקיימים התנאים הבאים: בצומת עם 2 בנים: יש אינדקס יחיד שגדול ממש מהערך המקסימלי בתת העץ השמאלי וקטןשווה מהערך המינימלי בתתהעץ הימני. בצומת עם 3 בנים: האינדקס הראשון גדול ממש מהערכים בתתהעץ השמאלי, קטןשווה מהערכים בתתהעץ האמצעי, ואינדקס שני גדול ממש מהערכים בתתהעץ האמצעי וקטן שווה מהערכים בתתהעץ הימני. פעולות בעץ 23: לפי הכללים הנ"ל חיפוש הוספה: חפש את הערך. הוסף אותו לצומת הפנימי האחרון אליו הגעת והוסף אינדקס אם יש 4 בנים פצל והעלה אינדקס אמצעי 2.1. חזור ל 2.1 עבור האב 2.2. מחיקה: חפש את הערך. מחק את הערך ואת האינדקס משמאלו (או הכי שמאלי). אם נשארו 2 בנים סיים. 3.1. אחרת אם לאב יש אח עם 3 בנים השאל בן וסיים. 3.2. אחרת אחד את האב עם אח שלו ועדכן אינדקסים. 3.3. חזור ל 3.1 עבור האב. 3.4. (1 (2 (3 דוגמא: הוסף 7:

הוסף :15 מחק :15 מחק :14

מחק :3